package code.structure.manager.font
{
	import code.structure.manager.loader.DllLoaderManager;
	
	import flash.text.Font;
	import flash.text.FontType;
	/**
	 *字体管理器 
	 * @author Yuri
	 * 
	 */
	public class FontManager
	{
		private static var _instance:FontManager;
		
		private var _embeddedFonts:Array;
		
		/**
		 *默认字体 
		 */
		public var _defaultFontName:String = "宋体";
		
		public function FontManager()
		{
			if(_instance){ 
				throw new Error("实例化单例类出错-FontManager");
			}
		}
		
		public static function getInstance():FontManager{
			if(!_instance) _instance = new FontManager();
			return _instance;
		}
		
		/**
		 *后期改进 
		 * 
		 */
		public function start():void{
			_embeddedFonts = new Array();
			_embeddedFonts = Font.enumerateFonts(false);
			embeddedFonts.sortOn("fontName", Array.CASEINSENSITIVE);
		}

		/**
		 *字体数组 
		 */
		private function get embeddedFonts():Array
		{
			return _embeddedFonts;
		}
		
		/**
		 *获取字体名 
		 * @return 
		 * 
		 */
		public function getEmbeddedFontName(fontType:int=1):String{
			if(fontType>0 && fontType<=_embeddedFonts.length){
				return embeddedFonts[fontType-1].fontName;
			}
			return _defaultFontName;
		}
		
		/**
		 *获取字体名称 A(Adlibn.ttf)
		 * @return 
		 * 
		 */
		public function get embeddedFontAName():String{
			return embeddedFonts && embeddedFonts[0]? embeddedFonts[0].fontName:_defaultFontName;
		}

		/**
		 *获取字体名称 B (Geometr231 Hv BT)
		 * @return 
		 * 
		 */
		public function get embeddedFontBName():String{
			return embeddedFonts && embeddedFonts[2]? embeddedFonts[2].fontName:_defaultFontName;
		}
		
		/**
		 *获取字体名称 C (ARLRDBD)Arial Rounded MT Bold
		 * @return 
		 * 
		 */
		public function get embeddedFontCName():String{
			return embeddedFonts && embeddedFonts[0]? embeddedFonts[0].fontName:_defaultFontName;
		}
		
		
		/**
		 *获取字体名称 D (Starjedi)Star Jedi
		 * @return 
		 * 
		 */
		public function get embeddedFonDName():String{
			return embeddedFonts && embeddedFonts[3]? embeddedFonts[3].fontName:_defaultFontName;
		}
	}
}